package com.yxx.business.service;

import java.util.List;

import com.yxx.common.core.domain.PageResult;
import com.yxx.business.entity.TbEquipmentInfoDo;
import com.yxx.business.entity.TbEquipmentInfoVo;
import com.yxx.business.entity.TbEquipmentInfoQueryDto;
import com.yxx.business.entity.TbEquipmentInfoEditDto;
import com.yxx.common.core.service.IServicePlus;

/**
 * 设备信息Service接口
 *
 * @author yxx
 * @date 2025-08-11
 */
public interface ITbEquipmentInfoService extends IServicePlus<TbEquipmentInfoDo> {

    /**
     * 查询设备信息分页结果
     *
     * @param tbEquipmentInfoQueryDto 设备信息查询实体
     * @return 设备信息分页
     */
    public PageResult<TbEquipmentInfoVo> selectTbEquipmentInfoVoPage(TbEquipmentInfoQueryDto tbEquipmentInfoQueryDto);

    /**
     * 查询设备信息Vo列表
     *
     * @param tbEquipmentInfoQueryDto 设备信息查询实体
     * @return 设备信息集合
     */
    public List<TbEquipmentInfoVo> selectTbEquipmentInfoVoList(TbEquipmentInfoQueryDto tbEquipmentInfoQueryDto);

    /**
     * 查询设备信息Do列表
     *
     * @param tbEquipmentInfoQueryDto 设备信息查询实体
     * @return 设备信息集合
     */
    public List<TbEquipmentInfoDo> selectTbEquipmentInfoDoList(TbEquipmentInfoQueryDto tbEquipmentInfoQueryDto);

    /**
     * 查询单个设备信息
     *
     * @param equipmentInfoId 设备信息主键
     * @return 设备信息单个
     */
    public TbEquipmentInfoVo selectTbEquipmentInfoVoByEquipmentInfoId(Long equipmentInfoId);

    /**
     * 新增设备信息
     *
     * @param tbEquipmentInfoQueryDto 设备信息编辑实体
     * @return 结果
     */
    public int insertTbEquipmentInfo(TbEquipmentInfoEditDto tbEquipmentInfoQueryDto);

    /**
     * 修改设备信息
     *
     * @param equipmentInfoId 主键
     * @param tbEquipmentInfoQueryDto 设备信息编辑实体
     * @return 结果
     */
    public int updateTbEquipmentInfo(Long equipmentInfoId, TbEquipmentInfoEditDto tbEquipmentInfoQueryDto);

    /**
     * 批量删除设备信息
     *
     * @param equipmentInfoIds 设备信息主键集合
     * @return 结果
     */
    public int deleteTbEquipmentInfoByEquipmentInfoIds(List<Long> equipmentInfoIds);

    /**
     * 删除单个设备信息信息
     *
     * @param equipmentInfoId 设备信息主键
     * @return 结果
     */
    public int deleteTbEquipmentInfoByEquipmentInfoId(Long equipmentInfoId);

    Boolean importEquipmentList(List<TbEquipmentInfoEditDto> list);
}
